#ifndef CIMAHIS_H
#define CIMAHIS_H

#include <QMainWindow>
#include"imagen.h"
#include "color/VerHistogramas/visualizarhistograma.h"
#include "color/UmbralHistogramas/ventanaumbral.h"
#include "color/AplicarFiltros/elegirFiltros.h"
#include "color/segmentacion/segmentacion.h"

class areaImagen;
QT_BEGIN_NAMESPACE
class QAction;
class QMenu;
class QMdiArea;
class QMdiSubWindow;
class QSignalMapper;
QT_END_NAMESPACE

class cimahis : public QMainWindow
{
    Q_OBJECT

public:
    cimahis();

protected:
  //  void mouseReleaseEvent(QMouseEvent *event);
    void closeEvent(QCloseEvent *event);
    VisualizarHistograma *visualizarHist;
    VentanaUmbral *umbralHist;
    elegirFiltros *ventanaFiltros;

private slots:
    void menuDinamico();
    void abrir();
    void acercaDe();
    void updateMenus();
    void updateWindowMenu();
    void guardar();
    void guardarComo();
    void separarCanales();
    void abrirVentanaFiltros();
    void copiaImagen();
    void escalaGris();
    void copiaNegativo();
    void ampliar(int x);
    areaImagen *crearAreaImagen();
    void setActiveSubWindow(QWidget *window);
    void verHistograma();
    void segmentarHistograma();
    void    RGB();
    void HSV();
    void HSL();
    void seleccionar();
    void segmentarRGB();

private:
    void createActions();
    void createMenus();
    void createToolBars();
    void createStatusBar();
    void readSettings();
    void writeSettings();
    QMdiSubWindow *encontrarArea(const QString &nombreArchivo);
    areaImagen *mdiHijoActivo();

    QMdiArea *mdiArea;
    QSignalMapper *asignadorVentana;
    QString filtroArchivos;
    QActionGroup *GrupoEspacioColor;

    QMenu *menuArchivo;
    QMenu *menuProcesamiento;
    QMenu *menuHerramientas;
    QMenu *menuVentana;
    QMenu *menuImagen;
    QMenu *menuAumento;
    QMenu *menuAyuda;
    QMenu *menuFiltros;
    QMenu *menuEspacioColor;
    QMenu *menuHistograma;
    QMenu *menuEdicion;
    QMenu *menuVer;
    QMenu *menuAnalisis;
    QMenu *menuCaracterizacion;
    QMenu *menuMorfologiaMatematica;
    QMenu *menuTrazadoBordes;

    QToolBar *toolbar;
    QToolBar *fileToolBar;
    QToolBar *editToolBar;

    QAction *actionCopiaImagen;
    QAction *actionGenerarReporte;
    QAction *actionSeleccionar;
    QAction *actionCopiar;
    QAction *actionNegativo;
    QAction *actionErosion;
    QAction *actionDilatacion;
    QAction *actionManual;
    QAction *actionAsistido;
    QAction *actionAutomatico;
    QAction *actionSegmentarRGB;
    QAction *actionCopiaGris;
    QAction *actionAbrir;
    QAction *actionGuardar;
    QAction *actionGuardar_Como;
    QAction *actionSalir;
    QAction *actionCerrar;
    QAction *actionCerrarTodo;
    QAction *actionMosaico;
    QAction *actionCascada;
    QAction *nextAct;
    QAction *previousAct;
    QAction *actionFiltros;
    QAction *actionAcerda_de;
    QAction *actionCalibrar;
    QAction *actionVerHistograma;
    QAction *actionSegmentarHistograma;
    QAction *actionRGB;
    QAction *actionHSV;
    QAction *actionHSL;
    QAction *actionSepararCanales;
    QAction *actionSuavizado;

    QSpinBox * zoom;
};

#endif // CIMAHIS_H
